package ReglasNegocio;
import AccesoDatos.*;
import java.util.*;
/**
 * @author ramayac
 */
public class logActividad extends ObjReglaNegocioBase{

    //id,fkactividad,fkfinca,fecha,areacubierta,numpersonas
    private String id;
    private Actividad fkactividad;
    private Finca fkfinca;
    private Date fecha; //Fecha en la que se realiza esa actividad
    private double areacubierta; //Area cubierta en manzanas de la actividad
    private long numpersonas; //Numero de personas usadas para esa actividad
    
    public logActividad(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor();
    }
    
    public logActividad() {
        super();
    }
    
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

        public Actividad getFkactividad() {
        return fkactividad;
    }

    public void setFkactividad(Actividad fkactividad) {
        this.fkactividad = fkactividad;
    }

    public Finca getFkfinca() {
        return fkfinca;
    }

    public void setFkfinca(Finca fkfinca) {
        this.fkfinca = fkfinca;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }
    
    public double getAreacubierta() {
        return areacubierta;
    }

    public void setAreacubierta(double areacubierta) {
        this.areacubierta = areacubierta;
    }

    public long getNumpersonas() {
        return numpersonas;
    }

    public void setNumpersonas(long numpersonas) {
        this.numpersonas = numpersonas;
    }
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[5];
        //id,fkactividad,fkfinca,fecha,areacubierta,numpersonas
        
        datos[0]=new Dato("fkactividad",this.fkactividad.getId());
        datos[1]=new Dato("fkfinca",this.fkfinca.getId());
        datos[2]=new Dato("fecha",(this.fecha.getYear()+1900)+"-"+(this.fecha.getMonth()+1)+"-"+this.fecha.getDay());
        datos[3]=new Dato("areacubierta",String.valueOf(this.areacubierta));
        datos[4]=new Dato("numpersonas",String.valueOf(this.numpersonas));

        return this.conn.Agregar(datos, "log_actividad");
    }
    
    @Override
    protected Boolean asignarCampos() {
        String buscar="select * from log_actividad";
        buscar+=" where id='"+this.getIdentificador().getValor()+"'";
        
        Vista v=this.conn.crearVista(buscar);
        if (v.getNRegistros()>0) {
            //id,fkactividad,fkfinca,fecha,areacubierta,numpersonas
            Dato tmpId = new Dato("id", String.valueOf((Long) v.getRegistro(0, 1))); //fkactividad
            this.fkactividad = null;
            this.fkactividad = new Actividad(tmpId);
            tmpId = new Dato("id", String.valueOf((Long) v.getRegistro(0, 2))); //fkfinca
            this.fkfinca = null;
            this.fkfinca = new Finca(tmpId);
            this.fecha=(Date) v.getRegistro(0, 3);
            this.areacubierta=(Double) v.getRegistro(0, 4);
            this.numpersonas=(Long) v.getRegistro(0, 5);
            return true;
        }
        else
            return false;
    }
    
    @Override
    public void Actualizar() {
        //id,fkactividad,fkfinca,fecha,areacubierta,numpersonas
        String sql="update log_actividad";
        sql+=" set ";
        sql+="fkactividad='"+this.fkactividad.getId()+"',";
        sql+="fkfinca='"+this.fkfinca.getId()+"',";
        sql+="fecha='"+this.fecha+"',";
        sql+="areacubierta='"+this.areacubierta+"',";
        sql+="numpersonas='"+this.numpersonas+"' ";
        sql+="where id='"+this.id+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
    }
}
